package com.youkeyi.ddy.cloud.common.api.basic.crm.vaccination;

import com.youkeyi.ddy.cloud.common.api.basic.crm.vaccination.dto.CrmVaccinationDetailsListCloudDto;
import com.youkeyi.ddy.cloud.common.api.basic.crm.vaccination.param.CrmVaccinationDetailsCreateCloudParam;
import com.youkeyi.ddy.cloud.common.api.basic.crm.vaccination.param.CrmVaccinationDetailsDeleteCloudParam;
import com.youkeyi.ddy.cloud.common.api.basic.crm.vaccination.param.CrmVaccinationDetailsQueryCloudParam;
import com.youkeyi.ddy.cloud.common.api.basic.crm.vaccination.param.CrmVaccinationDetailsUpdateCloudParam;
import com.youkeyi.ddy.cloud.common.response.ResponseContent;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * CrmVaccinationDetailsCloudService
 *
 * @Author liuxiawang
 * @Date 2024/3/1 10:54 AM
 * @Location shenzhen.china
 */
@RestController
@FeignClient(value = "YOUKEYI-DDY-CLOUD-BASIC-CRM", fallback = CrmVaccinationDetailsCloudServiceFallback.class)
@RequestMapping("/crm/vaccination/details")
public interface CrmVaccinationDetailsCloudService {

    /**
     * 查询接种明细列表.
     *
     * @param param the param
     * @return the vaccination details list cloud dto
     */
    @PostMapping(value = "/query")
    public abstract CrmVaccinationDetailsListCloudDto query(@RequestBody CrmVaccinationDetailsQueryCloudParam param);

    /**
     * 新增接种明细.
     *
     * @param param the param
     * @return the response content
     */
    @PostMapping(value = "/create")
    public abstract ResponseContent create(@RequestBody CrmVaccinationDetailsCreateCloudParam param);

    /**
     * 编辑接种明细.
     *
     * @param param the param
     * @return the response content
     */
    @PostMapping(value = "/update")
    public abstract ResponseContent update(@RequestBody CrmVaccinationDetailsUpdateCloudParam param);

    /**
     * 删除接种明细.
     *
     * @param param the param
     * @return the response content
     */
    @PostMapping(value = "/delete")
    public abstract ResponseContent delete(@RequestBody CrmVaccinationDetailsDeleteCloudParam param);
    
}
